Skill Development

ফাইল হ্যান্ডলিং

সি# এ ফাইল হ্যান্ডলিং ব্যবহার করে ফাইল তৈরি করা, পড়া, লেখা, মুছে ফেলা, এবং ফাইল সংক্রান্ত বিভিন্ন কার্যক্রম সম্পন্ন করা যায়। সি# এ ফাইল হ্যান্ডলিং এর জন্য System.IO নেমস্পেস ব্যবহার করা হয়, যা ফাইল এবং ডিরেক্টরি সম্পর্কিত অনেক ক্লাস এবং মেথড সরবরাহ করে।

ফাইল হ্যান্ডলিং এর কিছু প্রধান ক্লাস

  • File: ফাইল তৈরি, মুছা, কপি করা, মুভ করা ইত্যাদি কাজে ব্যবহৃত হয়।
  • FileInfo: File ক্লাসের মতো কাজ করে, তবে এটি অবজেক্ট-ওরিয়েন্টেড অ্যাপ্রোচ ব্যবহার করে।
  • StreamReader: ফাইল থেকে ডেটা পড়তে ব্যবহৃত হয়।
  • StreamWriter: ফাইলে ডেটা লেখার জন্য ব্যবহৃত হয়।

উদাহরণসহ বিভিন্ন কার্যক্রম


১. ফাইল তৈরি করা

নিচের উদাহরণটি একটি ফাইল তৈরি করে এবং কিছু লেখে।

using System;
using System.IO;

public class Program
{
    public static void Main()
    {
        // ফাইল তৈরি এবং লেখার জন্য File.WriteAllText ব্যবহার
        string filePath = "example.txt";
        string content = "Hello, this is a sample text.";

        File.WriteAllText(filePath, content);
        Console.WriteLine("File created and content written successfully.");
    }
}

২. ফাইল পড়া

ফাইল থেকে ডেটা পড়তে File.ReadAllText বা StreamReader ব্যবহার করা হয়।

using System;
using System.IO;

public class Program
{
    public static void Main()
    {
        string filePath = "example.txt";

        // ফাইল থেকে ডেটা পড়া
        if (File.Exists(filePath))
        {
            string content = File.ReadAllText(filePath);
            Console.WriteLine("File Content: " + content);
        }
        else
        {
            Console.WriteLine("File does not exist.");
        }
    }
}

৩. ফাইলে লেখা (Append করা)

ফাইলে নতুন কনটেন্ট যোগ করতে File.AppendAllText বা StreamWriter ব্যবহার করা হয়।

using System;
using System.IO;

public class Program
{
    public static void Main()
    {
        string filePath = "example.txt";
        string contentToAdd = "\nThis is appended text.";

        // ফাইলে ডেটা যোগ করা (Append)
        File.AppendAllText(filePath, contentToAdd);
        Console.WriteLine("Content appended to file successfully.");
    }
}

৪. ফাইল মুছে ফেলা

File.Delete ব্যবহার করে কোনো নির্দিষ্ট ফাইল মুছে ফেলা যায়।

using System;
using System.IO;

public class Program
{
    public static void Main()
    {
        string filePath = "example.txt";

        // ফাইল মুছে ফেলা
        if (File.Exists(filePath))
        {
            File.Delete(filePath);
            Console.WriteLine("File deleted successfully.");
        }
        else
        {
            Console.WriteLine("File does not exist.");
        }
    }
}

StreamReader এবং StreamWriter এর ব্যবহার

StreamReader এবং StreamWriter ক্লাসগুলো বড় ডেটা পড়া এবং লেখার জন্য অনেক বেশি কার্যকর। এগুলো using ব্লক ব্যবহার করে লেখা হয় যাতে অবজেক্টের জীবনকাল শেষে স্বয়ংক্রিয়ভাবে রিসোর্স মুক্ত করা হয়।

উদাহরণ: StreamWriter দিয়ে ফাইলে লেখা

using System;
using System.IO;

public class Program
{
    public static void Main()
    {
        string filePath = "example.txt";

        // StreamWriter দিয়ে ফাইলে লেখা
        using (StreamWriter writer = new StreamWriter(filePath))
        {
            writer.WriteLine("This is line 1.");
            writer.WriteLine("This is line 2.");
        }

        Console.WriteLine("Content written using StreamWriter.");
    }
}

উদাহরণ: StreamReader দিয়ে ফাইল পড়া

using System;
using System.IO;

public class Program
{
    public static void Main()
    {
        string filePath = "example.txt";

        // StreamReader দিয়ে ফাইল পড়া
        if (File.Exists(filePath))
        {
            using (StreamReader reader = new StreamReader(filePath))
            {
                string line;
                while ((line = reader.ReadLine()) != null)
                {
                    Console.WriteLine(line);
                }
            }
        }
        else
        {
            Console.WriteLine("File does not exist.");
        }
    }
}

সংক্ষেপে ফাইল হ্যান্ডলিং কার্যক্রমের তালিকা

  • File.Create(): নতুন ফাইল তৈরি করে।
  • File.WriteAllText(): একটি ফাইলে টেক্সট লেখে।
  • File.ReadAllText(): একটি ফাইল থেকে টেক্সট পড়ে।
  • File.AppendAllText(): ফাইলে টেক্সট যোগ করে।
  • File.Delete(): ফাইল মুছে ফেলে।
  • StreamWriter: বড় ফাইল বা একাধিক লাইনে লেখার জন্য ব্যবহার করা হয়।
  • StreamReader: বড় ফাইল বা একাধিক লাইনে পড়ার জন্য ব্যবহার করা হয়।

ফাইল হ্যান্ডলিং এ try-catch ব্লক ব্যবহার

ফাইল হ্যান্ডলিং কার্যক্রমের সময় এক্সেপশন ঘটার সম্ভাবনা থাকে, যেমন ফাইল পাওয়া না গেলে বা অনুমতি সংক্রান্ত সমস্যা হলে। এজন্য try-catch ব্লক ব্যবহার করা হয়।

using System;
using System.IO;

public class Program
{
    public static void Main()
    {
        string filePath = "example.txt";

        try
        {
            if (File.Exists(filePath))
            {
                string content = File.ReadAllText(filePath);
                Console.WriteLine("File Content: " + content);
            }
            else
            {
                Console.WriteLine("File does not exist.");
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("An error occurred: " + ex.Message);
        }
    }
}

সংক্ষেপে

সি# এ ফাইল হ্যান্ডলিং এর মাধ্যমে ফাইল তৈরি, লেখা, পড়া, মুছে ফেলা ইত্যাদি কার্যক্রম সম্পন্ন করা যায়। System.IO নেমস্পেসের File, FileInfo, StreamReader, এবং StreamWriter ক্লাসগুলো ফাইল হ্যান্ডলিং এ বিশেষ ভূমিকা পালন করে। try-catch ব্লক ব্যবহার করে ফাইল হ্যান্ডলিং কার্যক্রমকে আরও নিরাপদ করা যায়।

Content added By

ফাইল তৈরি, পড়া এবং লেখা

সি# এ ফাইল তৈরি, পড়া এবং লেখার জন্য System.IO নামক লাইব্রেরি ব্যবহৃত হয়। এই লাইব্রেরিতে থাকা বিভিন্ন ক্লাস এবং মেথড ফাইল পরিচালনা সহজ করে তোলে। এখানে ফাইল তৈরি, পড়া এবং লেখার প্রক্রিয়া বিস্তারিতভাবে আলোচনা করা হয়েছে।

ফাইল তৈরি করা

ফাইল তৈরি করতে File বা FileStream ক্লাস ব্যবহার করা যায়। File.Create মেথড ব্যবহার করে সহজেই একটি ফাইল তৈরি করা সম্ভব।

using System;
using System.IO;

public class Program
{
    public static void Main()
    {
        string filePath = "example.txt";

        // ফাইল তৈরি করা
        if (!File.Exists(filePath))
        {
            File.Create(filePath).Close();
            Console.WriteLine("File created successfully.");
        }
        else
        {
            Console.WriteLine("File already exists.");
        }
    }
}

এখানে:

  • File.Exists(filePath): চেক করে যে ফাইলটি ইতিমধ্যে আছে কি না।
  • File.Create(filePath): নতুন একটি ফাইল তৈরি করে। Close() মেথড ফাইলটি বন্ধ করে দেয়, কারণ এটি ফাইল স্ট্রিম খোলা রাখে।

ফাইলে লেখা

ফাইলে লেখা বা ডেটা সংরক্ষণের জন্য StreamWriter ক্লাস ব্যবহার করা যেতে পারে। StreamWriter ফাইলটি খোলে এবং নির্দিষ্ট ডেটা ফাইলে লেখার অনুমতি দেয়।

using System;
using System.IO;

public class Program
{
    public static void Main()
    {
        string filePath = "example.txt";

        // ফাইলে লেখা
        using (StreamWriter writer = new StreamWriter(filePath))
        {
            writer.WriteLine("Hello, this is a sample text.");
            writer.WriteLine("Writing to file in C#.");
        }

        Console.WriteLine("Data written to file successfully.");
    }
}

এখানে:

  • StreamWriter ফাইলটি লেখার জন্য খোলে, এবং WriteLine মেথড ব্যবহার করে ডেটা সংরক্ষণ করে।
  • using স্টেটমেন্ট StreamWriter অবজেক্টের জন্য স্বয়ংক্রিয়ভাবে ফাইলটি বন্ধ করে দেয়।

ফাইল পড়া

ফাইলে লেখা ডেটা পড়ার জন্য StreamReader ক্লাস ব্যবহার করা হয়। এটি ফাইলের প্রতিটি লাইন পড়ে এবং প্রয়োজন অনুসারে প্রদর্শন করতে পারে।

using System;
using System.IO;

public class Program
{
    public static void Main()
    {
        string filePath = "example.txt";

        // ফাইল থেকে পড়া
        using (StreamReader reader = new StreamReader(filePath))
        {
            string line;
            while ((line = reader.ReadLine()) != null)
            {
                Console.WriteLine(line);
            }
        }
    }
}

এখানে:

  • StreamReader ফাইলটি পড়ার জন্য খোলে এবং প্রতিটি লাইন ReadLine মেথড ব্যবহার করে পড়ে।
  • using ব্লকের মধ্যে ব্যবহার করার ফলে ফাইলটি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়।

অন্য উপায়: File.WriteAllText এবং File.ReadAllText

যদি পুরো ডেটা একবারে লিখতে বা পড়তে চান, তাহলে File.WriteAllText এবং File.ReadAllText ব্যবহার করা যেতে পারে। এটি দ্রুত এবং সহজ পদ্ধতি।

ফাইলে লেখা:

string filePath = "example.txt";
string content = "This is a single line of text written using WriteAllText.";

// ফাইলে লেখা
File.WriteAllText(filePath, content);
Console.WriteLine("Data written using WriteAllText.");

ফাইল থেকে পড়া:

string filePath = "example.txt";

// ফাইল থেকে পড়া
string content = File.ReadAllText(filePath);
Console.WriteLine("Data read using ReadAllText:");
Console.WriteLine(content);

সংক্ষিপ্তসার

  • ফাইল তৈরি: File.Create ব্যবহার করে ফাইল তৈরি করা যায়।
  • ফাইলে লেখা: StreamWriter বা File.WriteAllText দিয়ে লেখা সম্ভব।
  • ফাইল পড়া: StreamReader বা File.ReadAllText দিয়ে ফাইল পড়া যায়।

সি# এ ফাইল পরিচালনা খুবই সহজ এবং System.IO লাইব্রেরি ব্যবহার করে এটি আরও সহজতর হয়।

Content added By

StreamReader এবং StreamWriter এর ব্যবহার

সি# এ StreamReader এবং StreamWriter ক্লাসগুলো ফাইল থেকে ডেটা পড়া এবং ফাইলে ডেটা লেখার জন্য ব্যবহৃত হয়। StreamReader ফাইলের কনটেন্ট লাইনে লাইনে পড়তে এবং StreamWriter ফাইলে লেখা সহজ করে তোলে। এগুলো System.IO নেমস্পেসের অংশ এবং সাধারণত ফাইল হ্যান্ডলিং এ ব্যবহৃত হয়।

StreamWriter

StreamWriter ব্যবহার করে ফাইলে ডেটা লেখার জন্য Write এবং WriteLine মেথড ব্যবহার করা হয়। StreamWriter এর সাহায্যে বড় বা একাধিক লাইন ডেটা ফাইলে লিখতে সুবিধাজনক।

উদাহরণ: StreamWriter দিয়ে ফাইলে লেখা

using System;
using System.IO;

public class Program
{
    public static void Main()
    {
        string filePath = "example.txt";

        // StreamWriter দিয়ে ফাইলে লেখা
        using (StreamWriter writer = new StreamWriter(filePath))
        {
            writer.WriteLine("This is line 1.");
            writer.WriteLine("This is line 2.");
            writer.WriteLine("This is line 3.");
        }

        Console.WriteLine("Content written using StreamWriter.");
    }
}

ব্যাখ্যা

  1. StreamWriter অবজেক্ট writer তৈরি করা হয়েছে, যা filePath (example.txt) ফাইলের সাথে সংযুক্ত।
  2. writer.WriteLine() মেথডের মাধ্যমে ফাইলে লাইন বাই লাইন লেখা হয়েছে।
  3. using ব্লক ব্যবহার করা হয়েছে, যা ব্লকের শেষে রিসোর্স মুক্ত করে দেয়।

StreamReader

StreamReader ব্যবহার করে ফাইলের ডেটা লাইনে লাইনে পড়া হয়। StreamReader বড় ফাইলের কনটেন্ট লাইনে লাইনে পড়তে উপযুক্ত।

উদাহরণ: StreamReader দিয়ে ফাইল পড়া

using System;
using System.IO;

public class Program
{
    public static void Main()
    {
        string filePath = "example.txt";

        // StreamReader দিয়ে ফাইল পড়া
        if (File.Exists(filePath))
        {
            using (StreamReader reader = new StreamReader(filePath))
            {
                string line;
                while ((line = reader.ReadLine()) != null)
                {
                    Console.WriteLine(line);
                }
            }
        }
        else
        {
            Console.WriteLine("File does not exist.");
        }
    }
}

ব্যাখ্যা

  1. StreamReader অবজেক্ট reader তৈরি করা হয়েছে, যা filePath ফাইলের সাথে সংযুক্ত।
  2. reader.ReadLine() মেথড দিয়ে লাইনে লাইনে ডেটা পড়া হচ্ছে। ReadLine প্রতিটি লাইনের পর নতুন লাইন পাঠ করে এবং নাল হয়ে গেলে লুপ থেকে বের হয়।
  3. using ব্লক ব্যবহার করা হয়েছে, যাতে কাজ শেষে রিসোর্স মুক্ত হয়।

StreamWriter এর মাধ্যমে অ্যাপেন্ড করা (ফাইলের শেষে লেখা)

ফাইলের শেষে নতুন ডেটা যোগ করার জন্য StreamWriter এর append মোড ব্যবহার করা হয়।

using System;
using System.IO;

public class Program
{
    public static void Main()
    {
        string filePath = "example.txt";

        // StreamWriter দিয়ে ফাইলে অ্যাপেন্ড করা
        using (StreamWriter writer = new StreamWriter(filePath, true)) // true মানে অ্যাপেন্ড মোডে খুলবে
        {
            writer.WriteLine("This is appended line 1.");
            writer.WriteLine("This is appended line 2.");
        }

        Console.WriteLine("Content appended using StreamWriter.");
    }
}

ব্যাখ্যা

  1. new StreamWriter(filePath, true) এর true প্যারামিটার অ্যাপেন্ড মোড সক্রিয় করে।
  2. writer.WriteLine() এর মাধ্যমে ফাইলের শেষে নতুন লাইনগুলো যোগ করা হয়।

StreamReader দিয়ে পুরো ফাইল পড়া (ReadToEnd)

যদি পুরো ফাইল একবারে পড়তে চান, তাহলে ReadToEnd মেথড ব্যবহার করতে পারেন।

using System;
using System.IO;

public class Program
{
    public static void Main()
    {
        string filePath = "example.txt";

        // StreamReader দিয়ে পুরো ফাইল পড়া
        if (File.Exists(filePath))
        {
            using (StreamReader reader = new StreamReader(filePath))
            {
                string content = reader.ReadToEnd();
                Console.WriteLine(content);
            }
        }
        else
        {
            Console.WriteLine("File does not exist.");
        }
    }
}

সংক্ষেপে

  • StreamWriter: ফাইলে লেখা ও অ্যাপেন্ড করা যায়, Write এবং WriteLine মেথড ব্যবহার করে।
  • StreamReader: লাইনে লাইনে বা একবারে পুরো ফাইল পড়া যায়, ReadLine এবং ReadToEnd মেথড ব্যবহার করে।
  • using ব্লক: ব্যবহার করার পর অবজেক্ট স্বয়ংক্রিয়ভাবে ডিসপোজ করার জন্য ব্যবহার করা হয়, যা রিসোর্স ম্যানেজমেন্টে সহায়ক।

StreamReader এবং StreamWriter এর মাধ্যমে ফাইল হ্যান্ডলিং করা সহজ হয় এবং এগুলো বড় বা একাধিক লাইনের ফাইল পরিচালনার জন্য অত্যন্ত কার্যকর।

Content added By

সি# এ ফাইল পরিচালনার জন্য File এবং FileInfo ক্লাস দুটি প্রচলিতভাবে ব্যবহৃত হয়। এ দুটি ক্লাসের ব্যবহার এবং পার্থক্য নিয়ে এখানে আলোচনা করা হলো।

File ক্লাস

File ক্লাস হলো একটি স্ট্যাটিক ক্লাস যা সরাসরি বিভিন্ন ফাইল অপারেশন (যেমন তৈরি করা, মুছে ফেলা, কপি করা, ইত্যাদি) সম্পাদন করতে ব্যবহৃত হয়। File ক্লাসে থাকা মেথডগুলো সরাসরি ফাইলের ওপর কাজ করে এবং প্রতিবার কল করার সময় নতুন করে অবজেক্ট তৈরি করা লাগে না।

File ক্লাসের কয়েকটি গুরুত্বপূর্ণ মেথড:

  1. File.Create - নতুন একটি ফাইল তৈরি করে।
  2. File.Delete - নির্দিষ্ট ফাইল মুছে ফেলে।
  3. File.Copy - ফাইল কপি করে।
  4. File.Move - ফাইল সরিয়ে দেয়।
  5. File.Exists - ফাইল আছে কি না তা পরীক্ষা করে।

উদাহরণ: File ক্লাস ব্যবহার করে ফাইল তৈরি, লেখা, এবং পড়া

using System;
using System.IO;

public class Program
{
    public static void Main()
    {
        string filePath = "example.txt";

        // ফাইল তৈরি করা এবং লেখা
        if (!File.Exists(filePath))
        {
            File.WriteAllText(filePath, "Hello, this is written using File class.");
            Console.WriteLine("File created and data written.");
        }

        // ফাইল থেকে পড়া
        string content = File.ReadAllText(filePath);
        Console.WriteLine("Content of the file:");
        Console.WriteLine(content);

        // ফাইল মুছে ফেলা
        File.Delete(filePath);
        Console.WriteLine("File deleted.");
    }
}

এখানে:

  • File.WriteAllText ফাইলে ডেটা লেখার জন্য ব্যবহৃত হয়েছে।
  • File.ReadAllText ফাইল থেকে ডেটা পড়ে এবং File.Delete ফাইলটি মুছে দেয়।

FileInfo ক্লাস

FileInfo ক্লাস একটি নন-স্ট্যাটিক ক্লাস, যা ফাইলের বিভিন্ন প্রপার্টি এবং মেথড সরবরাহ করে। FileInfo ক্লাস প্রতিবার একটি নতুন অবজেক্ট তৈরি করে এবং এর মাধ্যমে ফাইলের বিভিন্ন অপারেশন করা হয়। FileInfo ক্লাস ফাইল সম্পর্কিত বিভিন্ন প্রপার্টি, যেমন - Length, CreationTime, Extension, ইত্যাদি পাওয়ার জন্য কার্যকর।

FileInfo ক্লাসের কয়েকটি গুরুত্বপূর্ণ মেথড:

  1. Create - নতুন একটি ফাইল তৈরি করে।
  2. Delete - ফাইল মুছে ফেলে।
  3. CopyTo - ফাইল কপি করে।
  4. MoveTo - ফাইল সরিয়ে দেয়।
  5. Open - ফাইলকে পড়া বা লেখার জন্য ওপেন করে।

উদাহরণ: FileInfo ক্লাস ব্যবহার করে ফাইল তৈরি, লেখা, এবং পড়া

using System;
using System.IO;

public class Program
{
    public static void Main()
    {
        string filePath = "example.txt";
        FileInfo fileInfo = new FileInfo(filePath);

        // ফাইল তৈরি করা এবং লেখা
        if (!fileInfo.Exists)
        {
            using (StreamWriter writer = fileInfo.CreateText())
            {
                writer.WriteLine("Hello, this is written using FileInfo class.");
            }
            Console.WriteLine("File created and data written.");
        }

        // ফাইল থেকে পড়া
        using (StreamReader reader = fileInfo.OpenText())
        {
            string content = reader.ReadToEnd();
            Console.WriteLine("Content of the file:");
            Console.WriteLine(content);
        }

        // ফাইল প্রপার্টি দেখা
        Console.WriteLine("File Info:");
        Console.WriteLine("File Name: " + fileInfo.Name);
        Console.WriteLine("File Size: " + fileInfo.Length + " bytes");
        Console.WriteLine("Creation Time: " + fileInfo.CreationTime);

        // ফাইল মুছে ফেলা
        fileInfo.Delete();
        Console.WriteLine("File deleted.");
    }
}

এখানে:

  • FileInfo.CreateText মেথড ব্যবহার করে ফাইলে লেখা হয়েছে।
  • FileInfo.OpenText মেথড ব্যবহার করে ফাইল থেকে ডেটা পড়া হয়েছে।
  • fileInfo.Name, fileInfo.Length, fileInfo.CreationTime প্রপার্টির মাধ্যমে ফাইলের নাম, সাইজ এবং তৈরিকৃত সময় দেখা গেছে।

File এবং FileInfo এর পার্থক্য

বৈশিষ্ট্যFile ক্লাসFileInfo ক্লাস
টাইপস্ট্যাটিক ক্লাসনন-স্ট্যাটিক ক্লাস
অবজেক্ট তৈরির প্রয়োজনপ্রতিবার মেথড কলের জন্য অবজেক্ট তৈরির প্রয়োজন নেইপ্রতিবার একটি নতুন অবজেক্ট তৈরি করতে হয়
ফাইল প্রপার্টিসরাসরি প্রপার্টি ব্যবহার করা যায় নাপ্রপার্টি যেমন Length, CreationTime, Extension ইত্যাদি সরাসরি পাওয়া যায়
ব্যবহার ক্ষেত্রসরাসরি সাধারণ কাজের জন্য উপযুক্তনির্দিষ্ট ফাইলের বিস্তারিত কাজের জন্য উপযুক্ত

সংক্ষেপে

  • File ক্লাস সরাসরি এবং সাধারণ ফাইল অপারেশনের জন্য দ্রুত ব্যবহার করা হয়।
  • FileInfo ক্লাস ফাইলের বিস্তারিত প্রপার্টি এবং অপারেশনের জন্য ব্যবহৃত হয়।

File এবং FileInfo উভয় ক্লাসই ফাইল পরিচালনা করতে সক্ষম, তবে ব্যবহারের ক্ষেত্রে নির্দিষ্ট প্রয়োজন অনুযায়ী ক্লাস নির্বাচন করা উচিত।

Content added By

আরও দেখুন...

Promotion